﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AVEIT.autogestionAVEIT.AccesoDatos;
using AVEIT.autogestionAVEIT.Negocio.Entidades;
using AVEIT.autogestionAVEIT.Negocio.Gestores;
using System.Data.SqlClient;

namespace AVEIT.autogestionAVEIT.Presentacion.Navegacion.Sorteos
{
    public partial class NuevoPremio : System.Web.UI.Page
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {
            
            

        }

        protected void btn_nuevo_Click(object sender, EventArgs e)
        {
            limpiarCampos();
            this.acomodarCampos();
            this.btn_eliminarD.Visible = false;
            lbl_encabezado1.Text = "Nuevo ";
            panel_cuerpo.Visible = true;
            txt_nombre.Focus();
        }

        protected void btn_modificar_Click(object sender, EventArgs e)
        {
            bandera.Text = "0";
            limpiarCampos();
            panel_buscar.Visible = true;
            panel_cuerpo.Visible = false;
            this.mostrarListaPremios();
            btn_eliminarD.Visible = false;
            lbl_encabezado1.Text = "Modificar ";            
        }

        protected void btn_eliminar_Click(object sender, EventArgs e)
        {
            bandera.Text = "1";
            limpiarCampos();
            panel_buscar.Visible = true;
            panel_cuerpo.Visible = false;
            this.mostrarListaPremios();
            lbl_encabezado1.Text = "Eliminar ";
            btn_guardar.Visible = false;
            btn_eliminarD.Visible = true;
        }

        protected void btn_guardar_Click(object sender, EventArgs e)
        {
            this.guardarNuevoPremio();            
        }

        private void acomodarCampos()
        {
            panel_final.Visible = false;
            panel_cuerpo.Visible = false;
            lbl_encabezado1.Text = " ";
        }

        private void habilitarRFV()
        {
            rfv_nombre.Enabled = true;
            rfv_precio.Enabled = true;
            rfv_fecha_compra.Enabled = true;
        }

        private void desabilitarRFV()
        {
            rfv_nombre.Enabled = false;
            rfv_precio.Enabled = false;
            rfv_fecha_compra.Enabled = false;
        }

        protected void btn_eliminarD_Click(object sender, EventArgs e)
        {
            GestorPremios gp = new GestorPremios();
            gp.eliminar(int.Parse(txt_numero_premio.Text));
            panel_grabar.Visible = true;
            lbl_grabar.Text = "El Premio se elimino Corectamente";

        }

        private void guardarNuevoPremio()
        {
            //metodo que me sirve para grabar nuevo premio y actualizar un premio.
            try
            {
                int? id = null;
                if (txt_numero_premio.Text != "")
                {
                    id = int.Parse(txt_numero_premio.Text);
                    
                }
                Premio p = new Premio(
                    id, txt_nombre.Text,
                    txt_decripcion.Text,
                    DateTime.Parse(txt_fecha_compra.Text).Date,
                    Double.Parse(txt_precio.Text),
                    true);
                GestorPremios.grabarPremio(p);
                panel_grabar.Visible = true;
                lbl_grabar.Text = "El PREMIO se grabo con exito...";
                panel_cuerpo.Visible = false;

            }
            catch (Exception)
            {
                panel_grabar.Visible = true;
                lbl_grabar.Text = "El PREMIO no se grabo con exito... Revise los datos... ";                
            }
            
        }

        private void mostrarListaPremios()
        {
            List<Premio> premios = GestorPremios.ObtenerTodos();
            GVPremios.DataSource = premios;
            GVPremios.DataBind();
            
            
        }

        protected void btn_cancelar_Click(object sender, EventArgs e)
        {
            limpiarCampos();
        }        
             

        private void GVPremios_PageIndexChanging()
        {
            
        }       

        protected void btn_aceptar_Click(object sender, EventArgs e)
        {

            mostrarListaPremios();
            panel_grabar.Visible = false;
            panel_cuerpo.Visible = false;
            panel_buscar.Visible = false;
            txt_precio.Enabled = true;
        }

        protected void GVPremios_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (bandera.Text=="0")
            {
                panel_cuerpo.Visible = true;
                lbl_numero_premio.Visible = true;
                txt_numero_premio.Visible = true;
                txt_numero_premio.Enabled = false;
                txt_numero_premio.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[1].Text.ToString();
                txt_nombre.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[2].Text.ToString();
                txt_decripcion.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[3].Text.ToString();
                txt_fecha_compra.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[4].Text.ToString();
                txt_precio.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[5].Text.ToString();
                txt_precio.Enabled = false;
                txt_nombre.Focus();
 
            }
            
            if (bandera.Text=="1")
            {
                panel_cuerpo.Visible = true;
                lbl_numero_premio.Visible = true;
                txt_numero_premio.Visible = true;
                txt_numero_premio.Enabled = false;
                txt_numero_premio.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[1].Text.ToString();
                txt_nombre.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[2].Text.ToString();
                txt_decripcion.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[3].Text.ToString();
                txt_fecha_compra.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[4].Text.ToString();
                txt_precio.Text = GVPremios.Rows[GVPremios.SelectedIndex].Cells[5].Text.ToString();
                txt_precio.Enabled = false;
                txt_nombre.Focus();
                txt_nombre.Enabled = false;
                txt_decripcion.Enabled = false;
                txt_fecha_compra.Enabled = false;
                txt_precio.Enabled = false; 
            }
        }

        private void limpiarCampos()
        {
            txt_nombre.Text = "";
            txt_decripcion.Text = "";
            txt_fecha_compra.Text = "";
            txt_precio.Text ="";
            txt_numero_premio.Visible = false;
            lbl_numero_premio.Visible = false;
            panel_cuerpo.Visible = false;
        }

        protected void GVPremios_PageIndexChanging1(object sender, GridViewPageEventArgs e)
        {
            GVPremios.PageIndex = e.NewPageIndex;
            mostrarListaPremios();
        }
    }
}